The invention relates to processing block coded image data. The Consultative Committee for International Telephony and Telegraph (CCITT) has adopted a standard (H.261) for encoding image data representative of a sequence of two dimensional arrays of image data. According to the proposed standard, a two dimensional array of pixel data is divided into a plurality of macroblocks, each macroblock (herein "macroblock" or "block") including an 16.times.16 sub-array. Each block of data is encoded using a lossy encoding technique to reduce the number of bits required to represent the block. The encoded data is then transmitted to a remote device which reconstructs the entire image from the transmitted data.
The transmitter is typically capable of encoding the block of data using a variety of encoding techniques. For each block of data, the transmitter selects an encoding technique which requires the fewest number of bits to describe the block of data.
One class of such techniques is referred to as "interframe" encoding. Interframe encoding techniques define each block of image data in terms of the differences between the block of data and a reference block of data stored both at the transmitter and the receiver device. The transmitter simply transmits to the receiver device the differences between the block to be transmitted and the selected reference image.
The transmitter may alternatively choose to encode the block of data using "intraframe" encoding. According to this technique, the transmitter encodes the original block in its entirety, without reference to other data. In effect, intraframe encoding describes each block of data in terms of the differences between the block of data and a zero reference block in which each pixel is set to the value zero.
Intraframe encoding typically requires many more bits to represent the block. Therefore, interframe encoding is generally preferred. However, as explained more fully below, if a given block in a sequence of frames is repeatedly transmitted using interframe encoding, the reference image block maintained at the receiver tends to diverge over time from the corresponding reference block stored at the transmitter. Accordingly, when the transmitter encodes a block relative to a given reference, the block reconstructed by the receiver will differ from the block intended by the transmitter.
In recognition of this problem, the CCITT's proposed standard requires that each block of data be coded in intraframe mode at least once for every 132 times that the block is coded in interframe mode. To meet this requirement, transmitters typically select three blocks from each frame for transmission using intraframe encoding. For example, the blocks in each frame are arranged in a raster scan ordering. The transmitter first selects the first three blocks from the raster scan sequence for transmission using intraframe encoding. For the next frame, the transmitter selects the next three blocks in the raster scan sequence. This process is repeated for each set of three blocks in the raster sequence until the end of the raster sequence is reached. The transmitter then repeats the process starting with the first three blocks of the raster sequence.
One object of the invention is to select blocks for intraframe encoding in a way which avoids intraframe encoding blocks which have not diverged.